1. Field of the Invention
The present invention is in the field of real-time systems and more particularly concerns systems and methods for synchronizing clocks among a plurality of distributed nodes in a manner that is capable of reliably self-stabilizing even in the presence of nodes exhibiting arbitrary Byzantine fault-prone behavior.
2. Description of the Related Art
A major problem in operating with any distributed system is establishing a consistent global view of the system from the local perspective of the participants. A basic aspect of arriving at such consistency is the ability to synchronize clocks, Numerous methods have been devised for clock synchronization, and for achieving convergence in resynchronization. The worst case scenario for synchronization is where the nodes to be synchronized are subject to “Byzantine” faults—that is, where distributed systems experience arbitrary and/or malicious faults during the execution of algorithms, including, among others, “send and omission failures”. See generally H. Kopetz, “Real-Time Systems, Design Principles for Distributed embedded Applications” (Kluwer Academic Publishers, 1997) (hereinafter “Kopetz 1997”). Known systems have not been able to guarantee convergence deterministically, scalably, and in a self-stabilizing manner in the presence of Byzantine faults, without limiting assumptions about initial states, use of a central clock, or relying on an externally-generated pulse system.